$(function() {
	// alert("成功跳转");
	// 验证
	validateInit();

	$('#roleTable').bootstrapTable({
		data : getDatas(),
		striped : true,
		cache : false,
		pagination : true,
		sortable : false,
		toolbar : "#roleToolbar",
		sidePagination : "client",
		pageNumber : 1,
		pageSize : 10,
		pageList : [ 10, 25, 50, 100 ],
		search : true,
		strictSearch : false,
		showColumns : true,
		clickToSelect : true,
		uniqueId : 'id',
		columns : [ {
			checkbox : true,
		}, {
			field : 'loginName',
			title : '用户名'
		}, {
			field : 'customerName',
			title : '姓名'
		}, {
			field : 'createUserName',
			title : '创建人'
		}, {
			field : 'createTime',
			title : '创建时间',
			formatter : function(value, row, index) {
				return moment(value).format('YYYY-MM-DD HH:mm:ss');
			}
		}, {
			field : 'operate',
			title : '操作'
		} ]
	});

	$("#roleTable").bootstrapTable("hideColumn", "id");
});

function validateInit() {
	// 新增客户表单校验
	$("#customerForm").validate({
						rules : {
							loginName : {
								required : true,
								remote : {
									url : "../customer/CheckCustomerLoginName.action",
									type : "post",
									data : {
										"loginName" : function() {
											return $("#addRoleModal [name='loginName']").val();
										}
									}
								}
							},
							customerName : {
								required : true,
								minlength : 2
							}
						},
						messages : {
							loginName : {
								remote : "此客户登录名已经存在"
							}
						},
						success : function(label, element) {// error是lavel标签，element是input标签
							labelReset(element);

							var myTipLabel = '<i class="glyphicon glyphicon-ok form-control-feedback my-tip-i"></i>';
							element.parent().append(myTipLabel);
							element.parent().parent().addClass('has-success');
						},
						errorPlacement : function(label, element) {
							labelReset(element);

							var myTipLabel = '<i class="glyphicon glyphicon-remove form-control-feedback my-tip-i"></i>'
									+ '<label class="control-label my-tip-label">'
									+ label.text() + '</label>';
							element.addClass("error");
							element.parent().append(myTipLabel);
							element.parent().parent().addClass('has-error');
						}
					});
	//修改表单校验
	$("#updateRoleForm").validate({
		rules : {
			loginName: {
				required : true,
			},
			customerName: {
				required : true,
			}
		},
		messages : {
			
		},
		success : function(label, element) {// error是lavel标签，element是input标签
			labelReset(element);

			var myTipLabel = '<i class="glyphicon glyphicon-ok form-control-feedback my-tip-i"></i>';
			element.parent().append(myTipLabel);
			element.parent().parent().addClass('has-success');
		},
		messages : {
			
		},
		errorPlacement : function(label, element) {
			labelReset(element);

			var myTipLabel = '<i class="glyphicon glyphicon-remove form-control-feedback my-tip-i"></i>'
							+'<label class="control-label my-tip-label">'
							+	label.text()
							+'</label>';
			element.addClass("error");
			element.parent().append(myTipLabel);
			element.parent().parent().addClass('has-error');
		}
	});
}

function getDatas() {
	var roles;
	$.ajax({
				url : "../customer/getAllcustomer.action",
				type : "post",
				async : false,// 是为了内层ajax在之后访问
				success : function(data) {
					$(data).each(function() {
										// 用户id获取用户名
										var userId = this.createUserId;
										var userName = null;
										$.ajax({
													url : "../user/getUserNameById.action",
													type : "post",
													data : {
														"id" : userId
													},
													async : false,// 是为了数据能递出去
													success : function(data) {
														userName = data;
													},
													error : function() {
														toastr.error("获取客户创建人信息出错，请联系管理员");
													}
												});

										this.createUserName = userName;

										// 操作赋值
										this.operate = '<button class=\'btn btn-primary btn-xs\' onclick=\'updateRole('
												+ this.id
												+ ')\'>修改</button>&nbsp;'
												+ '<button class=\'btn btn-danger btn-xs\' onclick=\'singleDelete('
												+ this.id + ')\'>删除</button>';
									});
					roles = data;
				},
				error : function() {
					toastr.error("获取客户信息出错，请联系管理员");
				}
			});
	return roles.reverse();
}

// 新增角色
function addRole() {
	formReset("#customerForm");
	$("#addRoleModal").modal("show");
}

// 保存
function saveRoles() {
	if (!$("#customerForm").valid()) {
		return false;
	}
	var datas = $("#customerForm").serialize();
	// console.log(datas);
	$.ajax({
		url : "../customer/save.action",
		type : "post",
		data : datas,
		success : function(data) {
			if (data.success == "true") {
				toastr.success("保存成功");
				$("#roleTable").bootstrapTable("load", getDatas());
			}
		},
		error : function() {
			toastr.error("提交到数据库发生错误，请联系管理员");
		}
	});
	$("#addRoleModal").modal("hide");
}

// 批量删除
function batchDelete() {
	var selectedRoles = $("#roleTable").bootstrapTable('getSelections');
	// console.log(JSON.stringify(selectedRoles)); //Array[Object, Object, ...]
	// return;
	if (selectedRoles.length == 0) {
		toastr.error("请勾选你要删除的数据");
		return false;
	}
	var roleIds = new Array();
	$(selectedRoles).each(function(index, role) {
		roleIds[index] = role.id;
	})

	deleteCore(roleIds);

}

// 重置密码
function resetPassword(customerId) {
	swal({
		title : "您确定要重置客户登陆密码吗",
		text : "重置后将无法恢复，请谨慎操作！",
		type : "warning",
		showCancelButton : true,
		confirmButtonColor : "#DD6B55",
		confirmButtonText : "重置",
		closeOnConfirm : false
	}, function() {
		$.ajax({
			url : "../customer/resetCustomerPassword.action",
			type : "post",
			data : {
				"customerId" : customerId
			},
			success : function(data) {
				if (data.success == "true") {
					swal("重置密码成功", "您已经重置了客户密码", "success");
					$("#roleTable").bootstrapTable("load", getDatas());
				} else {
					swal("重置密码失败", "后台业务处理发生错误，请联系管理员", "error");
				}
			},
			error : function() {
				swal("操作失败", "提交到数据库发生错误，请联系管理员。", "error");
			}
		});
	});
}

// 删除单个客户
function singleDelete(id) {
	var roleIds = new Array();
	roleIds[0] = id;
	deleteCore(roleIds);
}

function deleteCore(roleIds) {
	swal({
		title : "您确定要删除所选信息吗",
		text : "删除后将无法恢复，请谨慎操作！",
		type : "warning",
		showCancelButton : true,
		confirmButtonColor : "#DD6B55",
		confirmButtonText : "删除",
		closeOnConfirm : false
	}, function() {
		$.ajax({
			url : "../customer/deleteCustomerInfo.action",
			type : "post",
			data : {
				"roleIds" : roleIds
			},
			success : function(data) {
				if (data.success == "true") {
					swal("删除成功", "您已经永久删除了所选信息。", "success");
					$("#roleTable").bootstrapTable("load", getDatas());
				} else {
					swal("删除失败", "后台业务处理发生错误，请联系管理员", "error");
				}
			},
			error : function() {
				swal("操作失败", "提交到数据库发生错误，请联系管理员。", "error");
			}
		});
	});
}

// 修改
function updateRole(id) {
	//$("#updateRoleForm")[0].reset();
	formReset("#updateRoleForm");
	// 填充数据
	$.ajax({
		url : "../customer/getCustomerInfoById.action",
		type : "post",
		data : {
			"customerId" : id
		},
		async : false,
		success : function(data) {
			// console.log(data);
			$("#updateRoleModal [name='loginName']").val(data.loginName);
			$("#updateRoleModal [name='customerName']").val(data.customerName);
			$("#updateRoleModal [name='id']").val(id);
			$("#updateRoleModal").modal("show");
		},
		error : function() {
			toastr.error("获取角色信息出错，请联系管理员");
		}
	});
}
function updateRoleSave() {
	if (!$("#updateRoleForm").valid()) {
		return false;
	}
	var customer = $("#updateRoleForm").serialize();
	// console.log(role);
	$.ajax({
		url : "contract/customer/update.action",
		type : "post",
		data : customer,
		success : function(data) {
			if (data.success == "true") {
				toastr.success("更新成功");
				$("#roleTable").bootstrapTable("load", getDatas());
			}
		},
		error : function() {
			toastr.error("提交到数据库发生错误，请联系管理员");
		}
	});
	$("#updateRoleModal").modal("hide");
}
/*
 * , success : function(label, element) {// error是lavel标签，element是input标签
 * labelReset(element);
 * 
 * var myTipLabel = '<i class="glyphicon glyphicon-ok form-control-feedback
 * my-tip-i"></i>'; element.parent().append(myTipLabel);
 * element.parent().parent().addClass('has-success'); }, errorPlacement :
 * function(label, element) { labelReset(element);
 * 
 * var myTipLabel = '<i class="glyphicon glyphicon-remove form-control-feedback
 * my-tip-i"></i>' + '<label class="control-label my-tip-label">' +
 * label.text() + '</label>'; element.addClass("error");
 * element.parent().append(myTipLabel);
 * element.parent().parent().addClass('has-error'); }
 */
/*
 * var result = true; $.ajax({ url :
 * "../customer/CheckCustomerLoginName.action", type : "post", async: false,
 * data : { "loginName" : function() { return $( "#addRoleModal
 * [name='loginName']") .val(); } }, success : function(data) { result = data;
 * alert(result + "成功"); }, error : function() { toastr
 * .error("校验登录名出错，请联系管理员"); } }); alert(result + "失败"); return result; }
 */